//package com.tjetc._1enum;
//
//public class _1Eunm {
//    public static void main(String[] args) {
//        /*
//            要求创建季节(Season) 对象，包含季节的名称和描述。请设计并完成 。
//
//            问题：
//            1. 没有办法就固定这四个季节[对象] (1) 不创建对象 构造器私有化 (2) 将四个季节对象创建在类中 (3) 使用static变为静态成员
//            (4) 访问权限设置public  (5) 使用final固定
//            2. 可以修改是不合理的行为 （1）删除setter方法
//
//            使用这种方式的好处是什么？
//            1.表达清晰
//            2.安全
//            3.比较适合具有固定几种状态的场景 （状态机，常量集合， 业务响应码， 类型相关的成员，异常响应码）
//            int type = 0; // 0 就是未支付 1 已支付
//            public static final int NO_PAY = 0; 编程规范 代码中严禁出现固定值的常量
//            order.setType(0) // order.setType(xxx.NO_PAY);
//
//
//         */
//        Season spring = new Season("春天", "🌿");
//        Season summer = new Season("夏天", "🥵");
//        Season autumn = new Season("秋天", "🍂");
//        Season winter = new Season("冬天", "⛄");
//
//        Season day = new Season("白天", "☀");
//        winter.setName("黑天");
//
//        System.out.println("----------------------");
//        System.out.println(Season1.SPRING);
//
////        Season1.summer = Season1.spring;
////        System.out.println(Season1.summer);
//
//        System.out.println(Season1.SPRING.getName());
//        Season1 spring1 = Season1.SPRING;
////        spring1.setName("黑天");
//        System.out.println(Season1.SPRING);
//
//        System.out.println(Season2.WINTER);
//        System.out.println(Season2.SPRING);
//
//
//    }
//}
//
//// 使用枚举 enum 表示枚举
//enum Season2 {
//    // 不同常量之间使用逗号分割,常量值必须在类的开头部分, 使用分号作为常量值结束的标志，
//    // 如果没有任何的其他东西，可以省略分号
//    SPRING("春天", "🌿"),
//    SUMMER("夏天", "🥵"),
//    AUTUMN("秋天", "🍂"),
//    WINTER("冬天", "⛄");
//
//    // 成员的属性必须放在常量的后面
//    private final String name;
//    private final String des;
//
//    public String getName() {
//        return name;
//    }
//
//    public String getDes() {
//        return des;
//    }
//
//    Season2(String name, String des) {
//        this.name = name;
//        this.des = des;
//    }
//
//    @Override
//    public String toString() {
//        return "Season2{" +
//                "name='" + name + '\'' +
//                ", des='" + des + '\'' +
//                '}';
//    }
//}
//
//
//// 自定义实现枚举类的功能
//class Season1 {
//    public static final Season1 SPRING = new Season1("春天", "🌿");
//    public static final Season1 SUMMER = new Season1("夏天", "🥵");
//    public static final Season1 AUTUMN = new Season1("秋天", "🍂");
//    public static final Season1 WINTER = new Season1("冬天", "⛄");
//
//
//    private String name;
//    private String des;
//
//    public String getName() {
//        return name;
//    }
//
//    public String getDes() {
//        return des;
//    }
//
////    public void setName(String name) {
////        this.name = name;
////    }
////
////    public void setDes(String des) {
////        this.des = des;
////    }
//
//    private Season1() {
//    }
//
//    ;
//
//    private Season1(String name, String des) {
//        this.name = name;
//        this.des = des;
//    }
//
//    @Override
//    public String toString() {
//        return "Season1{" +
//                "name='" + name + '\'' +
//                ", des='" + des + '\'' +
//                '}';
//    }
//}
//
//
//// 普通类
//class Season {
//    private String name;
//    private String des;
//
//    public Season() {
//    }
//
//    public Season(String name, String des) {
//        this.name = name;
//        this.des = des;
//    }
//
//    public String getDes() {
//        return des;
//    }
//
//    public void setDes(String des) {
//        this.des = des;
//    }
//
//    public String getName() {
//        return name;
//    }
//
//    public void setName(String name) {
//        this.name = name;
//    }
//
//    @Override
//    public String toString() {
//        return "Season{" +
//                "name='" + name + '\'' +
//                ", des='" + des + '\'' +
//                '}';
//    }
//}
//
//
